From e7896a2f6831eb223c273420d968446c883f47d3 Mon Sep 17 00:00:00 2001 From: Eric Huss Date: Wed, 18 Apr 2018 22:13:30 -0700 Subject: [PATCH] Fix `with_*_does_not_contain` to support `[..]` and macro matching. --- tests/testsuite/bench.rs | 2 +- tests/testsuite/build.rs | 2 +- tests/testsuite/cargotest/support/mod.rs | 16 +++++++++++++--- tests/testsuite/check.rs | 24 ++++++++++++------------ 4 files changed, 27 insertions(+), 17 deletions(-) diff --git a/tests/testsuite/bench.rs b/tests/testsuite/bench.rs index ce05e1dfe..7347795f0 100644 --- a/tests/testsuite/bench.rs +++ b/tests/testsuite/bench.rs @@ -267,7 +267,7 @@ fn bench_multiple_targets() { .with_status(0) .with_stdout_contains("test run1 ... bench: [..]") .with_stdout_contains("test run2 ... bench: [..]") - .with_stdout_does_not_contain("run3"), + .with_stdout_does_not_contain("[..]run3[..]"), ); } diff --git a/tests/testsuite/build.rs b/tests/testsuite/build.rs index 7cc6b6ffd..80c1404d9 100644 --- a/tests/testsuite/build.rs +++ b/tests/testsuite/build.rs @@ -4509,7 +4509,7 @@ fn build_virtual_manifest_one_project() { p.cargo("build").arg("-p").arg("foo"), execs() .with_status(0) - .with_stderr_does_not_contain("bar") + .with_stderr_does_not_contain("[..]bar[..]") .with_stderr_contains("[..] Compiling foo v0.1.0 ([..])") .with_stderr( "[..] Compiling [..] v0.1.0 ([..])\n\ diff --git a/tests/testsuite/cargotest/support/mod.rs b/tests/testsuite/cargotest/support/mod.rs index 9ee70bf7c..9264bb950 100644 --- a/tests/testsuite/cargotest/support/mod.rs +++ b/tests/testsuite/cargotest/support/mod.rs @@ -687,9 +687,17 @@ impl Execs { } } MatchKind::NotPresent => { - if !actual.contains(out) { - Ok(()) - } else { + let mut a = actual.lines(); + let e = out.lines(); + + let mut diffs = self.diff_lines(a.clone(), e.clone(), true); + while let Some(..) = a.next() { + let a = self.diff_lines(a.clone(), e.clone(), true); + if a.len() < diffs.len() { + diffs = a; + } + } + if diffs.is_empty() { Err(format!( "expected not to find:\n\ {}\n\n\ @@ -697,6 +705,8 @@ impl Execs { {}", out, actual )) + } else { + Ok(()) } } } diff --git a/tests/testsuite/check.rs b/tests/testsuite/check.rs index 264abf898..b55342d4c 100644 --- a/tests/testsuite/check.rs +++ b/tests/testsuite/check.rs @@ -743,10 +743,10 @@ fn check_filters() { .with_status(0) .with_stderr_contains("[..]unused_normal_lib[..]") .with_stderr_contains("[..]unused_normal_bin[..]") - .with_stderr_does_not_contain("unused_normal_t1") - .with_stderr_does_not_contain("unused_normal_ex1") - .with_stderr_does_not_contain("unused_normal_b1") - .with_stderr_does_not_contain("unused_unit_"), + .with_stderr_does_not_contain("[..]unused_normal_t1[..]") + .with_stderr_does_not_contain("[..]unused_normal_ex1[..]") + .with_stderr_does_not_contain("[..]unused_normal_b1[..]") + .with_stderr_does_not_contain("[..]unused_unit_[..]"), ); p.root().join("target").rm_rf(); assert_that( @@ -764,8 +764,8 @@ fn check_filters() { .with_stderr_contains("[..]unused_unit_t1[..]") .with_stderr_contains("[..]unused_normal_ex1[..]") .with_stderr_contains("[..]unused_unit_ex1[..]") - .with_stderr_does_not_contain("unused_normal_b1") - .with_stderr_does_not_contain("unused_unit_b1"), + .with_stderr_does_not_contain("[..]unused_normal_b1[..]") + .with_stderr_does_not_contain("[..]unused_unit_b1[..]"), ); p.root().join("target").rm_rf(); assert_that( @@ -775,12 +775,12 @@ fn check_filters() { .with_stderr_contains("[..]unused_normal_lib[..]") .with_stderr_contains("[..]unused_normal_bin[..]") .with_stderr_contains("[..]unused_unit_t1[..]") - .with_stderr_does_not_contain("unused_unit_lib") - .with_stderr_does_not_contain("unused_unit_bin") - .with_stderr_does_not_contain("unused_normal_ex1") - .with_stderr_does_not_contain("unused_normal_b1") - .with_stderr_does_not_contain("unused_unit_ex1") - .with_stderr_does_not_contain("unused_unit_b1"), + .with_stderr_does_not_contain("[..]unused_unit_lib[..]") + .with_stderr_does_not_contain("[..]unused_unit_bin[..]") + .with_stderr_does_not_contain("[..]unused_normal_ex1[..]") + .with_stderr_does_not_contain("[..]unused_normal_b1[..]") + .with_stderr_does_not_contain("[..]unused_unit_ex1[..]") + .with_stderr_does_not_contain("[..]unused_unit_b1[..]"), ); p.root().join("target").rm_rf(); assert_that( -- 2.30.2